| Sintesi: viene descritto il metodo e le varie fasi, da eseguire in modo gerarchico dall'utente, per la correzione effettuata secondo il metodo del donatore |
Le funzioni di CONCORD, nell'approccio di correzione tramite donatore,
sono uguali a quelle di RIDA (Ricostruzione delle Informazioni con Donazione
Automatica).
Con questo metodo si ottiene la correzione di un file di dati, sempre
registrato in ASCII, tramite la tecnica del donatore.
Verranno di seguito descritti sia i principi su cui la tecnica si basa, che i passi che l’utente deve eseguire per rendere operativo il sistema.
Rappresentazione dei dati.
Sia data una matrice di dati X, formata da n unità
e k variabili di tipo qualsiasi. Le unità rappresentano i
vettori-riga, le variabili i vettori-colonna. Le variabili sono di tipo
qualsiasi.
Dal punto di vista della archiviazione elettronica della informazione,
la matrice dei dati X è contenuta in un file, costituito da un insieme
di record, ognuno rappresentante una unità, e contenente un numero
di campi pari al numero di variabili (da ora in poi useremo il termine
record o unità come sinonimi). Un insieme di campi al limite anche
uno solo, consente di identificare in modo univoco il record-unità
ed è detto chiave o identificativo del record.
Dividiamo in due gruppi le variabili:
Proponiamoci ora di misurare la distanza tra due unità, rispetto
alle variabili esatte. A questo scopo è necessario introdurre una
metrica per ogni tipologia di variabile (si veda Abbate 1996).
Sia quindi d la distanza tra due unità, misurata rispetto
ai seguenti tipi di variabile:
a) Variabile qualitativa sconnessa.
Si pone:
d=0 se le unità presentano la stessa modalità,
d=1 se la modalità è diversa.
Formalmente: X1 = X2Þd=0, X1 ¹X2Þd=1
b) Variabile ordinata con m modalità.
Si pone:
d=0 se sulle due unità è stata rilevata la stessa modalità;
d=1 se le modalità sono adiacenti;
d=2 se tra di esse ce n’è una sola, e così via fino a
d=m-1, se le due modalità sono agli estremi opposti.
Per rendere d variabile tra 0 ed 1, essa viene divisa per il suo massimo
m-1.
Formalmente: X1 = X2Þd=0, X1 =r, X2=s
(r¹ s)Þ
d=![]()
c) Variabile qualitativa telescopica.
Tali variabili sono rappresentabili tramite un insieme di gruppi primari
di livello 1, contenenti ognuno più sottogruppi di livello
2.
Ogni sottogruppo di livello 2 contiene più sottogruppi
di livello 3 e così via fino ad un sottogruppo di livello
j, contenente modalità non ulteriormente scomponibili in sottogruppi,
che sono al livello più basso j+1.
Una modalità siffatta può essere codificata con g gruppi
di bit, ognuno dei quali è dimensionato in modo da poter rappresentare
tutti i sottogruppi relativi a quel livello.
Poniamo:
d=0 se le due unità presentano stessa modalità,
d=1 se le due modalità diverse sono nello stesso sottogruppo
di livello j,
d=2 se esse sono in gruppi differenti di livello j, ma nello stesso
sottogruppo di livello j-1,
d=3 se sono in gruppi differenti di livello j-1, ma nello stesso sottogruppo
di livello j-2 e così via fino ad un massimo di d=j+1 se le due
modalità sono in gruppi primari diversi di livello 1.
Rendiamo la distanza variabile tra 0 ed 1 dividendola per il suo massimo pari a j+1. Sia r il livello più alto a partire dal quale si riscontra una differenza tra X1 ed X2, r assume quindi valori tra 1 e j+1.
Formalmente: X1 = X2Þd=0, X1 ¹X2Þd=
In CONCORD, come in RIDA, questo tipo di distanza è utilizzato nel caso particolare che sia sufficiente una sola cifra per rappresentare ogni livello. Date quindi due generiche modalità di una variabile di tipo telescopico, esse distano 0 se tutte le cifre sono uguali, 1 se solo l’ultima è diversa, 2 se sono diverse soltanto l’ultima e la penultima e così via;
d) Variabile quantitativa.
Sia X1 il valore assunto dalla variabile X nella prima unità,
X2 nella seconda. Poniamo d=½ X1- X2½. La distanza può
essere resa variabile tra 0 e 1 dividendola per il suo massimo, pari alla
differenza tra i valori massimo (Xmax) e minimo (Xmin) della variabile
X presenti nel file.
Formalmente: X1 = X2Þd=0, X1 ¹X2Þd=![]()
Nella versione attuale, il valore assoluto della differenza tra X1 e X2 è diviso per X1+1, misurando uno scostamento relativo rispetto ad X1 ( la scelta di X1+1 serve per evitare un denominatore degenere, nel caso che sia X1=0). E’ evidente che la scelta di una distanza siffatta privilegia l’importanza della variabile quantitativa, in particolare se il valore di X2 risultasse molto distante da quello di X1.
Formalizzazione della funzione di distanza mista ponderata.
Assegnata una matrice di dati, presentante k-h variabili non affette da errore, definiamo distanza mista ponderata D tra due generiche unità una espressione del tipo:
,
dove Di è la distanza tra le due unità rispetto alla variabile i, misurata con una delle espressioni di cui sopra e Wi è un numero reale positivo che rappresenta l’importanza assegnata alla variabile i nel calcolo della distanza. Le r variabili sono scelte tra le k-h quelle non affette da errore. L’attuale versione accetta solo numeri naturali per Wi. Chiamiamo variabili di accoppiamento o di matching le r variabili scelte per il calcolo della distanza.
Scelta dell’unità donatrice.
Data un’unità affetta da errore nella variabile k si vuole trovare l’unità esatta posta alla distanza minima. Essa è detta unità donatrice, perché il valore della variabile k relativo ad essa è "donato" all’unità affetta da errore. L’insieme della unità tra le quali è scelta l’unità donatrice è detto serbatoio dei donatori. Il serbatoio dei donatori può essere costruito in due modi:
Funzione di distanza mista ponderata corretta.
Possiamo introdurre un perfezionamento alla distanza mista ponderata sopra introdotta, per penalizzare l’unità del serbatoio che è già stata utilizzata nella donazione. Ridefiniamo la distanza D come:
![]()
dove k è il numero di volte per cui l’unità è stata
precedentemente utilizzata, p è un fattore di penalità. Questa
espressione più completa è adottata da CONCORD (RIDA), che
richiede che p sia un numero intero.
Ponderazione delle variabili di matching.
Sono molte le tecniche possibili di ponderazione delle variabili di
matching. Le applicazioni finora realizzate nell’interno dell’istituto
hanno utilizzato il criterio del
.
Esso si applica nel seguente modo (Abbate 1996):
1) si misura la connessione tra la variabile affetta da errore e quelle esatte tramite l’indice. Il valore dell’indice dipende dal numero di celle della tabella di contingenza. Poiché bisogna confrontare il valore dei
ottenuti, per renderli confrontabili occorre o riclassificare in modo opportuno almeno la variabile da correggere, se di tipo quantitativo, in modo da ottenere tabelle di contingenza di dimensioni omogenee, oppure dividere direttamente il valore del
per il numero di gradi di libertà, che è pari al prodotto tra il numero delle righe e delle colonne della tabella di contingenza diminuiti entrambi di uno;
Modalità di utilizzo.
L’utente deve preparare i seguenti file:
2. File contenente i record esatti, costituenti il serbatoio dei potenziali donatori.
3. File dei parametri. Viene generato automaticamente da CONCORD dopo aver definito le variabili da correggere con il carattere di errore, particolarmente importante perché solo i campi in cui esso è presente sono soggetti a correzione, le variabili di strato e di matching. Per ogni variabile occorre specificare la posizione iniziale, la lunghezza, il tipo (obbligatorio per le variabili di matching, al fine della scelta della funzione di distanza da adottare) e il peso. Le variabili quantitative possono essere riclassificate, specificando l’estremo superiore di ogni classe. Si possono poi inserire i parametri U,R,L. Essi sono, rispettivamente, il numero massimo di volte che la stessa unità può essere utilizzata come donatrice, il fattore moltiplicativo che penalizza l’uso ripetuto dello stesso donatore e la massima distanza a cui può essere considerato un donatore. Vale la stessa avvertenza formulata a proposito dell’uso degli strati: l’uso dei parametri U e L implica la possibilità di non riuscire a trovare il donatore. I parametri U, R, L possono mancare: questo implica che non si pone alcun limite alla possibilità di riutilizzare lo stesso donatore ed esso può essere scelto anche molto distante rispetto all’unità donatrice.
La prima funzione possibile, una volta scelto in Concord il metodo di correzione tramite donatore, è quella di definizione. Bisogna definire le variabili di correzione, di strato, di match e infine i parametri di esecuzione.
Le variabili di correzione sono quelle che individuano i valori da correggere sui record errati e sono dette anche variabili di tipo "A". Tra i record errati vengono selezionati quelli che hanno un campo, determinato dalla posizione e lunghezza della variabile, contenente gli stessi caratteri di individuazione della variabile di correzione e questi caratteri vengono sostituiti, con diverse modalità, con dati presi dai record donatori.
Esempio:
desideriamo correggere la variabile alfanumerica A01 posizione 30,
lunghezza 3 individuata nei record errati dai caratteri BBB, sostituendovi
il valore del campo corrispondente di un record donatore individuato in
funzione della distanza.
Deve esistere almeno una variabile di tipo "A".
Utilizzando l'integrazione tra i metodi, è' possibile scegliere
le variabili da correggere tra quelle mostrate nella listbox "variabili"
con un doppio click sul tasto sinistro del mouse; in questo caso il programma
numera automaticamente la variabile, ne definisce la posizione, la lunghezza,
il tipo (alfanumerico) e la correzione (1 - spostamento), lascia vuoto
il carattere di correzione, che deve essere inserito poi dall'utente nella
tabella, e indica la variabile di provenienza associata.
.V A01 P=30 L=3 T=C X=2 B
VARIABILI "C" DI CLASSIFICAZIONE
Queste variabili devono essere inserite manualmente nella
tabella .
Per ogni variabile bisogna indicare:
VARIABILI "F" PER FORMULE DI CALCOLO
Queste variabili devono essere inserite manualmente nella
tabella.
Per ogni variabile indicare:
E01/(D01+D02)
Queste variabili devono essere inserite manualmente nella
tabella.
Indicano le variabili che sono utilizzate per la correzione di variabili
Axx con tipo correzione 2 nelle formule di calcolo descritte nelle
variabili di tipo "F".
Per ogni variabile e' necessario indicare:
Dxx - il numero, univoco e riferito a quello della formula descritta nella variabile "F", deve iniziare sempre con la lettera D se il valore è da cercare sul record donatore e xx deve assumere i valori nel range 01-99.
"Import" permette di importare da un file esterno formattato del tipo "dvardom.dat" variabili precedentemente definite.
Alla fine delle operazioni di definizione delle variabili da correggere, dal menu a tendina "File" è possibile scegliere:
7.1.2. Definizione variabili di strato
Indicano le variabili di stratificazione che si utilizzano per individuare
gruppi di record donatori simili fra loro e sono chiamate variabili "S".
Lo strato è importante perché definisce la parte del
serbatoio dei record donatori ove effettuare la ricerca del record esatto
con distanza minima rispetto al record con variabili da correggere.
Deve essere presente almeno uno strato.
Sfruttando l'integrazione tra i metodi, è possibile scegliere
la variabile di strato tra quelle mostrate nella listbox "variabili" con
un doppio click sul tasto sinistro del mouse; in questo caso il programma
numera automaticamente la variabile, ne definisce la posizione, la lunghezza,
il tipo (alfanumerico) e la variabile di provenienza associata.
Per ogni variabile bisogna indicare:
VARIABILI "C" DI CLASSIFICAZIONE
Queste variabili devono essere inserite manualmente nella tabella.
Per ogni variabile bisogna indicare:
S01 1 9.99 50 99 499 999 5000"Import" permette di importare da un file esterno formattato variabili precedentemente definite.
S01 100000
vengono generati i seguenti due record nel file "dvardom.dat" nella cartella di progetto:
.C S01 1 9 50 99 499 999 5000
.C S01 100000
Alla fine delle operazioni di definizione delle variabili di strato, dal menu a tendina "File" è possibile scegliere:
Le variabili di match sono utilizzate per calcolare la distanza tra
il record da correggere e i record che fanno parte del serbatoio dei donatori.
Le variabili di match sono dette variabili di tipo "M". Le variabili
di match possono mancare; in questo caso il serbatoio dei donatori deve
essere mirato alle correzioni da effettuare poiché ogni record si
trova, almeno inizialmente, alla distanza minima.
Per ogni variabile di match e' necessario indicare:
VARIABILI "C" DI CLASSIFICAZIONE
Queste variabili devono essere inserite manualmente nella tabella.
Indicare per ogni variabile di classificazione:
M01 1 9.99 50 99 499 999 5000"Import" permette di importare da un file esterno formattato variabili precedentemente definite.
M01 100000
vengono generati i seguenti due record nel file "dvardom.dat" nella cartella di progetto:
.C M01 1 9 50 99 499 5000
.C M01 100000
Alla fine delle operazioni di definizione delle variabili di match, dal menu a tendina "File" è possibile scegliere:
Queste variabili devono essere inserite manualmente nella
tabella.
La definizione dei parametri di impostazione serve a condizionare,
con parametri specifici, la fase di imputazione per tutti i record da correggere.
Vediamo in dettaglio i vari parametri:
PARAMETRO "U".
Rappresenta il fattore di penalizzazione per i record donatore già
utilizzati, in modo che detti record, rientrino nella donazione solo se
non esistono altri record con distanza calcolata più bassa.
Il valore deve essere intero.
Se non esiste si assume 0.
PARAMETRO "R"
Rappresenta il numero massimo di volte in cui uno stesso record donatore
può essere utilizzato.
Se non esiste si assume 0 ovvero riutilizzo illimitato.
Il valore deve essere intero.
PARAMETRO "L"
Rappresenta il limite massimo della distanza tra il record donatore
e il record da correggere.
Il valore deve essere intero.
Se non esiste si assume 0 ossia qualsiasi distanza .
PARAMETRO "D".
Rappresenta la distanza minima di accettazione per un donatore.
Il valore deve essere intero.
Se non esiste si assume 0 ossia la distanza accettabile è sempre
uguale a zero.
Il calcolo della distanza (D) tra due variabili X,Y dipende dal tipo di variabile:
D<K,L> = (Somma(P(I) * D(I)<K,L>)) + R<L> * U
in cui P(I) rappresenta il peso della variabile(I), R<L> rappresenta il numero delle volte in cui è stato utilizzato il donatore L, e U è il fattore di penalizzazione.
"Import" permette di importare da un file esterno formattato variabili precedentemente definite.
Alla fine delle definizioni dei parametri dal menu a tendina "File" è possibile scegliere:
7.2.1. Controllo delle variabili per donatore
Scegliendo questa funzione si esegue la fase di controllo delle variabili di strato, match, correzione e dei parametri definiti dall'utente tramite le apposite funzioni.
Viene prima registrato nella cartella di progetto il file "dvardom.dat" dai dataset specifici, contenente le variabili come definite dall'utente, e successivamente eseguito il programma di controllo.
Se durante la fase di controllo vengono rilevati errori di definizione delle variabili, o lacune nelle definizioni, verrà mostrato un messaggio di avvertimento ed evidenziata la lista delle variabili errate con gli errori relativi.
Se il controllo non rileva errori viene resa possibile la funzione di
correzione.
Con questa funzione si eseguono i passi di correzione tramite donatore.
Selezionando la funzione viene mostrata una maschera dalla quale, cliccando sull'icona relativa, è possibile selezionare il file di input contenente i record corretti donatori.
Selezionare poi il file degli errati da correggere cliccando sull'icona relativa.
Scegliere infine il tipo di messaggistica che verrà visualizzata durante l'elaborazione:
I file generati, nella cartella di progetto, dai vari programmi durante la correzione tramite donatore sono individuabili dal nome "donax.ttt" ove "x" è il passo eseguito e "ttt" e il tipo di file.
Il primo passo è l'esecuzione del programma dona2 per la creazione di un file dei record da correggere o dei record esatti con le sole variabili di interesse: estrae le variabili dal file degli errati o dei donatori utilizzando le schede parametro di tipo strato e match mettendo nel file di output prima le variabili di strato e poi le variabili di match; se le variabili sono di tipo t=c al valore delle variabili sostituisce la classe di appartenenza.
Input:
Input:
Input:
Viene infine eseguito il programma dona5 per le statistiche di correzione.
Input:
donatori utilizzati:
1 volta, 2 volte, 3 volte, 4-9 volte, 10-99 volte, 100 o più
volte, totale;
donatori utilizzati a distanza:
d=0 0<d<1 1<=d<10 10<=d<100 100<=d<1000 1000<=d=10000
d>=10000;
totale correzioni xxxxxxxx ;
donatore non trovato xxxxxxxx di cui non nello strato s1;
per limite distanza xxxxxxx;
per limite riutilizzo xxxxxxx;
donatori utilizzati xxxxxxxx;
rapporto di utilizzo xx.xxx ;